/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package treeship.core.archetype;

import java.util.List;

/**
 * 
 * @author Moonchild
 */
public abstract class ArchetypeShip {

	public abstract <P extends PropertyContext> List<P> getProperties();

	public abstract String getName();

	public abstract ArchetypeFamily getFamily();

	public abstract <C extends ComponentContext> List<C> getComponents();

	public abstract <T extends ArchetypeShip> List<T> getCreatives();

	public abstract DimensionContext getDimensionContext();

	public abstract long getId();

	public abstract Double getStaticPropertyForString(String s);

	public abstract boolean isOpen();

	public abstract boolean isSolid();
}
